<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>aps.views.relacion'</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="aps-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="aps-module.html">Package&nbsp;aps</a> ::
        <a href="aps.views-module.html">Package&nbsp;views</a> ::
        Module&nbsp;relacion'
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="aps.views.relacion%27-pysrc.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<h1 class="epydoc">Source Code for <a href="aps.views.relacion%27-module.html">Module aps.views.relacion'</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">flask</tt> <tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Variable aps.request=aps-module.html#request,Variable aps.views.atributo'.request=aps.views.atributo%27-module.html#request,Variable aps.views.historial'.request=aps.views.historial%27-module.html#request,Variable aps.views.item'.request=aps.views.item%27-module.html#request,Variable aps.views.lineabase'.request=aps.views.lineabase%27-module.html#request,Variable aps.views.login'.request=aps.views.login%27-module.html#request,Variable aps.views.permiso'.request=aps.views.permiso%27-module.html#request,Variable aps.views.proyecto'.request=aps.views.proyecto%27-module.html#request,Variable aps.views.relacion'.request=aps.views.relacion%27-module.html#request,Variable aps.views.request=aps.views-module.html#request,Variable aps.views.rol'.request=aps.views.rol%27-module.html#request,Variable aps.views.usuario'.request=aps.views.usuario%27-module.html#request"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-0', 'request', 'link-0');">request</a></tt><tt class="py-op">,</tt> <tt class="py-name">jsonify</tt><tt class="py-op">,</tt> <tt id="link-1" class="py-name" targets="Variable aps.session=aps-module.html#session,Variable aps.views.atributo'.session=aps.views.atributo%27-module.html#session,Variable aps.views.item'.session=aps.views.item%27-module.html#session,Variable aps.views.lineabase'.session=aps.views.lineabase%27-module.html#session,Variable aps.views.login'.session=aps.views.login%27-module.html#session,Variable aps.views.proyecto'.session=aps.views.proyecto%27-module.html#session,Variable aps.views.relacion'.session=aps.views.relacion%27-module.html#session,Variable aps.views.session=aps.views-module.html#session"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-1', 'session', 'link-1');">session</a></tt> </tt>
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Package aps=aps-module.html"><a title="aps" class="py-name" href="#" onclick="return doclink('link-2', 'aps', 'link-2');">aps</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Variable aps.app=aps-module.html#app,Variable aps.models.app=aps.models-module.html#app,Variable aps.models.atributo.app=aps.models.atributo-module.html#app,Variable aps.models.fase.app=aps.models.fase-module.html#app,Variable aps.models.faserol.app=aps.models.faserol-module.html#app,Variable aps.models.fasetipoitem.app=aps.models.fasetipoitem-module.html#app,Variable aps.models.grafo.app=aps.models.grafo-module.html#app,Variable aps.models.historial.app=aps.models.historial-module.html#app,Variable aps.models.item.app=aps.models.item-module.html#app,Variable aps.models.itematributovalor.app=aps.models.itematributovalor-module.html#app,Variable aps.models.itemversion.app=aps.models.itemversion-module.html#app,Variable aps.models.lineabase.app=aps.models.lineabase-module.html#app,Variable aps.models.permiso.app=aps.models.permiso-module.html#app,Variable aps.models.proyecto.app=aps.models.proyecto-module.html#app,Variable aps.models.proyectofase.app=aps.models.proyectofase-module.html#app,Variable aps.models.proyectorol.app=aps.models.proyectorol-module.html#app,Variable aps.models.proyectousuario.app=aps.models.proyectousuario-module.html#app,Variable aps.models.proyectousuariorol.app=aps.models.proyectousuariorol-module.html#app,Variable aps.models.relacion.app=aps.models.relacion-module.html#app,Variable aps.models.rol.app=aps.models.rol-module.html#app,Variable aps.models.rolpermiso.app=aps.models.rolpermiso-module.html#app,Variable aps.models.solicitud.app=aps.models.solicitud-module.html#app,Variable aps.models.solicituditem.app=aps.models.solicituditem-module.html#app,Variable aps.models.tipoitem.app=aps.models.tipoitem-module.html#app,Variable aps.models.tipoitematributo.app=aps.models.tipoitematributo-module.html#app,Variable aps.models.uploadedfile.app=aps.models.uploadedfile-module.html#app,Variable aps.models.usuario.app=aps.models.usuario-module.html#app,Variable aps.models.voto.app=aps.models.voto-module.html#app,Variable aps.views.app=aps.views-module.html#app,Variable aps.views.atributo'.app=aps.views.atributo%27-module.html#app,Variable aps.views.historial'.app=aps.views.historial%27-module.html#app,Variable aps.views.item'.app=aps.views.item%27-module.html#app,Variable aps.views.lineabase'.app=aps.views.lineabase%27-module.html#app,Variable aps.views.login'.app=aps.views.login%27-module.html#app,Variable aps.views.permiso'.app=aps.views.permiso%27-module.html#app,Variable aps.views.proyecto'.app=aps.views.proyecto%27-module.html#app,Variable aps.views.relacion'.app=aps.views.relacion%27-module.html#app,Variable aps.views.rol'.app=aps.views.rol%27-module.html#app,Variable aps.views.usuario'.app=aps.views.usuario%27-module.html#app"><a title="aps.app
aps.models.app
aps.models.atributo.app
aps.models.fase.app
aps.models.faserol.app
aps.models.fasetipoitem.app
aps.models.grafo.app
aps.models.historial.app
aps.models.item.app
aps.models.itematributovalor.app
aps.models.itemversion.app
aps.models.lineabase.app
aps.models.permiso.app
aps.models.proyecto.app
aps.models.proyectofase.app
aps.models.proyectorol.app
aps.models.proyectousuario.app
aps.models.proyectousuariorol.app
aps.models.relacion.app
aps.models.rol.app
aps.models.rolpermiso.app
aps.models.solicitud.app
aps.models.solicituditem.app
aps.models.tipoitem.app
aps.models.tipoitematributo.app
aps.models.uploadedfile.app
aps.models.usuario.app
aps.models.voto.app
aps.views.app
aps.views.atributo'.app
aps.views.historial'.app
aps.views.item'.app
aps.views.lineabase'.app
aps.views.login'.app
aps.views.permiso'.app
aps.views.proyecto'.app
aps.views.relacion'.app
aps.views.rol'.app
aps.views.usuario'.app" class="py-name" href="#" onclick="return doclink('link-3', 'app', 'link-3');">app</a></tt> </tt>
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-4', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Package aps.models=aps.models-module.html"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-5', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Variable aps.models.historial.Historial.item=aps.models.historial.Historial-class.html#item,Module aps.models.item=aps.models.item-module.html,Variable aps.models.solicituditem.SolicitudItem.item=aps.models.solicituditem.SolicitudItem-class.html#item"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-6', 'item', 'link-6');">item</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-7', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-8', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module aps.models.fase=aps.models.fase-module.html,Variable aps.models.historial.Historial.fase=aps.models.historial.Historial-class.html#fase,Variable aps.models.item.Item.fase=aps.models.item.Item-class.html#fase,Variable aps.models.proyectofase.ProyectoFase.fase=aps.models.proyectofase.ProyectoFase-class.html#fase,Variable aps.models.solicitud.Solicitud.fase=aps.models.solicitud.Solicitud-class.html#fase,Module aps.views.fase=aps.views.fase-module.html"><a title="aps.models.fase
aps.models.historial.Historial.fase
aps.models.item.Item.fase
aps.models.proyectofase.ProyectoFase.fase
aps.models.solicitud.Solicitud.fase
aps.views.fase" class="py-name" href="#" onclick="return doclink('link-9', 'fase', 'link-9');">fase</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-10', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-11', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Module aps.models.relacion=aps.models.relacion-module.html"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-12', 'relacion', 'link-12');">relacion</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-13', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Package aps.views=aps.views-module.html"><a title="aps.views" class="py-name" href="#" onclick="return doclink('link-14', 'views', 'link-14');">views</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Module aps.models.historial=aps.models.historial-module.html"><a title="aps.models.historial" class="py-name" href="#" onclick="return doclink('link-15', 'historial', 'link-15');">historial</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-16', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-17', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Module aps.models.grafo=aps.models.grafo-module.html"><a title="aps.models.grafo" class="py-name" href="#" onclick="return doclink('link-18', 'grafo', 'link-18');">grafo</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-19" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-19', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-20', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Module aps.models.proyectofase=aps.models.proyectofase-module.html"><a title="aps.models.proyectofase" class="py-name" href="#" onclick="return doclink('link-21', 'proyectofase', 'link-21');">proyectofase</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-22" class="py-name"><a title="aps" class="py-name" href="#" onclick="return doclink('link-22', 'aps', 'link-2');">aps</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="aps.models" class="py-name" href="#" onclick="return doclink('link-23', 'models', 'link-5');">models</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Module aps.models.itematributovalor=aps.models.itematributovalor-module.html"><a title="aps.models.itematributovalor" class="py-name" href="#" onclick="return doclink('link-24', 'itematributovalor', 'link-24');">itematributovalor</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="crear_relacion"></a><div id="crear_relacion-def"><a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"> </tt>
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">app</tt><tt class="py-op">.</tt><tt class="py-name">route</tt><tt class="py-op">(</tt><tt class="py-string">'/crear_relacion'</tt><tt class="py-op">,</tt> <tt class="py-name">methods</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>   </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt> <a class="py-toggle" href="#" id="crear_relacion-toggle" onclick="return toggle('crear_relacion');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="aps.views.relacion'-module.html#crear_relacion">crear_relacion</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="crear_relacion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="crear_relacion-expanded"><a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">    Permite crear relaciones entre dos items.</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring">    @param request: objeto que encapsula la peticion del cliente</tt> </tt>
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">    @return: True si la accion se realizo correctamente</tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">    <tt id="link-25" class="py-name" targets="Variable aps.models.relacion.Relacion.idorigen=aps.models.relacion.Relacion-class.html#idorigen"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-25', 'idorigen', 'link-25');">idorigen</a></tt>  <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-26', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'origen'</tt><tt class="py-op">]</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">    <tt id="link-27" class="py-name" targets="Variable aps.models.relacion.Relacion.iddestino=aps.models.relacion.Relacion-class.html#iddestino"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-27', 'iddestino', 'link-27');">iddestino</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-28', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'destino'</tt><tt class="py-op">]</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">    <tt id="link-29" class="py-name" targets="Variable aps.models.relacion.Relacion.tipo=aps.models.relacion.Relacion-class.html#tipo"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-29', 'tipo', 'link-29');">tipo</a></tt>      <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-30', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'tipo'</tt><tt class="py-op">]</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">     </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-name">item_origen</tt>  <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Variable aps.bdsession=aps-module.html#bdsession,Variable aps.models.atributo.bdsession=aps.models.atributo-module.html#bdsession,Variable aps.models.base.bdsession=aps.models.base-module.html#bdsession,Variable aps.models.bdsession=aps.models-module.html#bdsession,Variable aps.models.fase.bdsession=aps.models.fase-module.html#bdsession,Variable aps.models.faserol.bdsession=aps.models.faserol-module.html#bdsession,Variable aps.models.fasetipoitem.bdsession=aps.models.fasetipoitem-module.html#bdsession,Variable aps.models.grafo.bdsession=aps.models.grafo-module.html#bdsession,Variable aps.models.historial.bdsession=aps.models.historial-module.html#bdsession,Variable aps.models.item.bdsession=aps.models.item-module.html#bdsession,Variable aps.models.itematributovalor.bdsession=aps.models.itematributovalor-module.html#bdsession,Variable aps.models.itemversion.bdsession=aps.models.itemversion-module.html#bdsession,Variable aps.models.lineabase.bdsession=aps.models.lineabase-module.html#bdsession,Variable aps.models.permiso.bdsession=aps.models.permiso-module.html#bdsession,Variable aps.models.proyecto.bdsession=aps.models.proyecto-module.html#bdsession,Variable aps.models.proyectofase.bdsession=aps.models.proyectofase-module.html#bdsession,Variable aps.models.proyectorol.bdsession=aps.models.proyectorol-module.html#bdsession,Variable aps.models.proyectousuario.bdsession=aps.models.proyectousuario-module.html#bdsession,Variable aps.models.proyectousuariorol.bdsession=aps.models.proyectousuariorol-module.html#bdsession,Variable aps.models.relacion.bdsession=aps.models.relacion-module.html#bdsession,Variable aps.models.rol.bdsession=aps.models.rol-module.html#bdsession,Variable aps.models.rolpermiso.bdsession=aps.models.rolpermiso-module.html#bdsession,Variable aps.models.solicitud.bdsession=aps.models.solicitud-module.html#bdsession,Variable aps.models.solicituditem.bdsession=aps.models.solicituditem-module.html#bdsession,Variable aps.models.tipoitem.bdsession=aps.models.tipoitem-module.html#bdsession,Variable aps.models.tipoitematributo.bdsession=aps.models.tipoitematributo-module.html#bdsession,Variable aps.models.uploadedfile.bdsession=aps.models.uploadedfile-module.html#bdsession,Variable aps.models.usuario.bdsession=aps.models.usuario-module.html#bdsession,Variable aps.models.voto.bdsession=aps.models.voto-module.html#bdsession,Variable aps.views.atributo'.bdsession=aps.views.atributo%27-module.html#bdsession,Variable aps.views.bdsession=aps.views-module.html#bdsession,Variable aps.views.fase.bdsession=aps.views.fase-module.html#bdsession,Variable aps.views.historial'.bdsession=aps.views.historial%27-module.html#bdsession,Variable aps.views.item'.bdsession=aps.views.item%27-module.html#bdsession,Variable aps.views.lineabase'.bdsession=aps.views.lineabase%27-module.html#bdsession,Variable aps.views.login'.bdsession=aps.views.login%27-module.html#bdsession,Variable aps.views.main.bdsession=aps.views.main-module.html#bdsession,Variable aps.views.permiso'.bdsession=aps.views.permiso%27-module.html#bdsession,Variable aps.views.proyecto'.bdsession=aps.views.proyecto%27-module.html#bdsession,Variable aps.views.relacion'.bdsession=aps.views.relacion%27-module.html#bdsession,Variable aps.views.rol'.bdsession=aps.views.rol%27-module.html#bdsession,Variable aps.views.solicitudcambio.bdsession=aps.views.solicitudcambio-module.html#bdsession,Variable aps.views.tipoitem.bdsession=aps.views.tipoitem-module.html#bdsession,Variable aps.views.usuario'.bdsession=aps.views.usuario%27-module.html#bdsession"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-31', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name" targets="Class aps.models.item.Item=aps.models.item.Item-class.html"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-32', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name" targets="Variable aps.models.atributo.Atributo.id=aps.models.atributo.Atributo-class.html#id,Variable aps.models.fase.Fase.id=aps.models.fase.Fase-class.html#id,Variable aps.models.item.Item.id=aps.models.item.Item-class.html#id,Variable aps.models.itemversion.ItemVersion.id=aps.models.itemversion.ItemVersion-class.html#id,Variable aps.models.lineabase.Lineabase.id=aps.models.lineabase.Lineabase-class.html#id,Variable aps.models.permiso.Permiso.id=aps.models.permiso.Permiso-class.html#id,Variable aps.models.proyecto.Proyecto.id=aps.models.proyecto.Proyecto-class.html#id,Variable aps.models.rol.Rol.id=aps.models.rol.Rol-class.html#id,Variable aps.models.solicitud.Solicitud.id=aps.models.solicitud.Solicitud-class.html#id,Variable aps.models.tipoitem.Tipoitem.id=aps.models.tipoitem.Tipoitem-class.html#id,Variable aps.models.usuario.Usuario.id=aps.models.usuario.Usuario-class.html#id"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-33', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-34" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-34', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-name">item_destino</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-35', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-36', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-37', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-38" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-38', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">     </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-comment"># Construimos un grafo del proyecto para detectar ciclos</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-name">id_proyecto</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-39', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name" targets="Class aps.models.proyectofase.ProyectoFase=aps.models.proyectofase.ProyectoFase-class.html"><a title="aps.models.proyectofase.ProyectoFase" class="py-name" href="#" onclick="return doclink('link-40', 'ProyectoFase', 'link-40');">ProyectoFase</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name" targets="Variable aps.models.faserol.FaseRol.idfase=aps.models.faserol.FaseRol-class.html#idfase,Variable aps.models.fasetipoitem.FaseTipoitem.idfase=aps.models.fasetipoitem.FaseTipoitem-class.html#idfase,Variable aps.models.historial.Historial.idfase=aps.models.historial.Historial-class.html#idfase,Variable aps.models.item.Item.idfase=aps.models.item.Item-class.html#idfase,Variable aps.models.itemversion.ItemVersion.idfase=aps.models.itemversion.ItemVersion-class.html#idfase,Variable aps.models.lineabase.Lineabase.idfase=aps.models.lineabase.Lineabase-class.html#idfase,Variable aps.models.proyectofase.ProyectoFase.idfase=aps.models.proyectofase.ProyectoFase-class.html#idfase,Variable aps.models.solicitud.Solicitud.idfase=aps.models.solicitud.Solicitud-class.html#idfase"><a title="aps.models.faserol.FaseRol.idfase
aps.models.fasetipoitem.FaseTipoitem.idfase
aps.models.historial.Historial.idfase
aps.models.item.Item.idfase
aps.models.itemversion.ItemVersion.idfase
aps.models.lineabase.Lineabase.idfase
aps.models.proyectofase.ProyectoFase.idfase
aps.models.solicitud.Solicitud.idfase" class="py-name" href="#" onclick="return doclink('link-41', 'idfase', 'link-41');">idfase</a></tt><tt class="py-op">=</tt><tt class="py-name">item_origen</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="aps.models.faserol.FaseRol.idfase
aps.models.fasetipoitem.FaseTipoitem.idfase
aps.models.historial.Historial.idfase
aps.models.item.Item.idfase
aps.models.itemversion.ItemVersion.idfase
aps.models.lineabase.Lineabase.idfase
aps.models.proyectofase.ProyectoFase.idfase
aps.models.solicitud.Solicitud.idfase" class="py-name" href="#" onclick="return doclink('link-42', 'idfase', 'link-41');">idfase</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Variable aps.models.grafo.Grafo.idproyecto=aps.models.grafo.Grafo-class.html#idproyecto,Variable aps.models.historial.Historial.idproyecto=aps.models.historial.Historial-class.html#idproyecto,Variable aps.models.proyectofase.ProyectoFase.idproyecto=aps.models.proyectofase.ProyectoFase-class.html#idproyecto,Variable aps.models.proyectorol.ProyectoRol.idproyecto=aps.models.proyectorol.ProyectoRol-class.html#idproyecto,Variable aps.models.proyectousuario.ProyectoUsuario.idproyecto=aps.models.proyectousuario.ProyectoUsuario-class.html#idproyecto,Variable aps.models.proyectousuariorol.ProyectoUsuarioRol.idproyecto=aps.models.proyectousuariorol.ProyectoUsuarioRol-class.html#idproyecto"><a title="aps.models.grafo.Grafo.idproyecto
aps.models.historial.Historial.idproyecto
aps.models.proyectofase.ProyectoFase.idproyecto
aps.models.proyectorol.ProyectoRol.idproyecto
aps.models.proyectousuario.ProyectoUsuario.idproyecto
aps.models.proyectousuariorol.ProyectoUsuarioRol.idproyecto" class="py-name" href="#" onclick="return doclink('link-43', 'idproyecto', 'link-43');">idproyecto</a></tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name" targets="Class aps.models.grafo.Grafo=aps.models.grafo.Grafo-class.html"><a title="aps.models.grafo.Grafo" class="py-name" href="#" onclick="return doclink('link-44', 'Grafo', 'link-44');">Grafo</a></tt><tt class="py-op">(</tt><tt class="py-name">id_proyecto</tt><tt class="py-op">)</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt class="py-name">paths</tt> <tt class="py-op">=</tt> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method aps.models.grafo.Grafo.buscar_caminos()=aps.models.grafo.Grafo-class.html#buscar_caminos"><a title="aps.models.grafo.Grafo.buscar_caminos" class="py-name" href="#" onclick="return doclink('link-45', 'buscar_caminos', 'link-45');">buscar_caminos</a></tt><tt class="py-op">(</tt><tt class="py-name">item_origen</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-46', 'id', 'link-33');">id</a></tt><tt class="py-op">,</tt><tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-47', 'id', 'link-33');">id</a></tt><tt class="py-op">)</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">paths</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-comment"># Existen ciclos</tt> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">jsonify</tt> <tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'success'</tt><tt class="py-op">:</tt><tt class="py-name">False</tt><tt class="py-op">,</tt><tt class="py-string">'message'</tt><tt class="py-op">:</tt><tt class="py-string">'No se puede crear la relacion, produce ciclos.'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">     </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-comment"># Copiamos los atributos del item a una nueva version</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt id="link-48" class="py-name" targets="Variable aps.models.tipoitem.Tipoitem.atributos=aps.models.tipoitem.Tipoitem-class.html#atributos"><a title="aps.models.tipoitem.Tipoitem.atributos" class="py-name" href="#" onclick="return doclink('link-48', 'atributos', 'link-48');">atributos</a></tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-49', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-50" class="py-name" targets="Class aps.models.itematributovalor.ItemAtributoValor=aps.models.itematributovalor.ItemAtributoValor-class.html"><a title="aps.models.itematributovalor.ItemAtributoValor" class="py-name" href="#" onclick="return doclink('link-50', 'ItemAtributoValor', 'link-50');">ItemAtributoValor</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-51" class="py-name" targets="Variable aps.models.historial.Historial.iditem=aps.models.historial.Historial-class.html#iditem,Variable aps.models.itematributovalor.ItemAtributoValor.iditem=aps.models.itematributovalor.ItemAtributoValor-class.html#iditem,Variable aps.models.itemversion.ItemVersion.iditem=aps.models.itemversion.ItemVersion-class.html#iditem,Variable aps.models.solicituditem.SolicitudItem.iditem=aps.models.solicituditem.SolicitudItem-class.html#iditem,Variable aps.models.uploadedfile.UploadedFile.iditem=aps.models.uploadedfile.UploadedFile-class.html#iditem"><a title="aps.models.historial.Historial.iditem
aps.models.itematributovalor.ItemAtributoValor.iditem
aps.models.itemversion.ItemVersion.iditem
aps.models.solicituditem.SolicitudItem.iditem
aps.models.uploadedfile.UploadedFile.iditem" class="py-name" href="#" onclick="return doclink('link-51', 'iditem', 'link-51');">iditem</a></tt><tt class="py-op">=</tt><tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-52', 'id', 'link-33');">id</a></tt><tt class="py-op">,</tt><tt id="link-53" class="py-name" targets="Variable aps.models.item.Item.version=aps.models.item.Item-class.html#version,Variable aps.models.itematributovalor.ItemAtributoValor.version=aps.models.itematributovalor.ItemAtributoValor-class.html#version,Variable aps.models.itemversion.ItemVersion.version=aps.models.itemversion.ItemVersion-class.html#version,Variable aps.models.uploadedfile.UploadedFile.version=aps.models.uploadedfile.UploadedFile-class.html#version"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-53', 'version', 'link-53');">version</a></tt><tt class="py-op">=</tt><tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-54', 'version', 'link-53');">version</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">all</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-55" class="py-name" targets="Module aps.models.atributo=aps.models.atributo-module.html,Variable aps.models.itematributovalor.ItemAtributoValor.atributo=aps.models.itematributovalor.ItemAtributoValor-class.html#atributo,Variable aps.models.tipoitematributo.TipoitemAtributo.atributo=aps.models.tipoitematributo.TipoitemAtributo-class.html#atributo"><a title="aps.models.atributo
aps.models.itematributovalor.ItemAtributoValor.atributo
aps.models.tipoitematributo.TipoitemAtributo.atributo" class="py-name" href="#" onclick="return doclink('link-55', 'atributo', 'link-55');">atributo</a></tt> <tt class="py-keyword">in</tt> <tt id="link-56" class="py-name"><a title="aps.models.tipoitem.Tipoitem.atributos" class="py-name" href="#" onclick="return doclink('link-56', 'atributos', 'link-48');">atributos</a></tt><tt class="py-op">:</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">tmp</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="aps.models.itematributovalor.ItemAtributoValor" class="py-name" href="#" onclick="return doclink('link-57', 'ItemAtributoValor', 'link-50');">ItemAtributoValor</a></tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="aps.models.atributo
aps.models.itematributovalor.ItemAtributoValor.atributo
aps.models.tipoitematributo.TipoitemAtributo.atributo" class="py-name" href="#" onclick="return doclink('link-58', 'atributo', 'link-55');">atributo</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="aps.models.historial.Historial.iditem
aps.models.itematributovalor.ItemAtributoValor.iditem
aps.models.itemversion.ItemVersion.iditem
aps.models.solicituditem.SolicitudItem.iditem
aps.models.uploadedfile.UploadedFile.iditem" class="py-name" href="#" onclick="return doclink('link-59', 'iditem', 'link-51');">iditem</a></tt><tt class="py-op">,</tt><tt id="link-60" class="py-name"><a title="aps.models.atributo
aps.models.itematributovalor.ItemAtributoValor.atributo
aps.models.tipoitematributo.TipoitemAtributo.atributo" class="py-name" href="#" onclick="return doclink('link-60', 'atributo', 'link-55');">atributo</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Variable aps.models.itematributovalor.ItemAtributoValor.idatributo=aps.models.itematributovalor.ItemAtributoValor-class.html#idatributo,Variable aps.models.tipoitematributo.TipoitemAtributo.idatributo=aps.models.tipoitematributo.TipoitemAtributo-class.html#idatributo,Variable aps.models.uploadedfile.UploadedFile.idatributo=aps.models.uploadedfile.UploadedFile-class.html#idatributo"><a title="aps.models.itematributovalor.ItemAtributoValor.idatributo
aps.models.tipoitematributo.TipoitemAtributo.idatributo
aps.models.uploadedfile.UploadedFile.idatributo" class="py-name" href="#" onclick="return doclink('link-61', 'idatributo', 'link-61');">idatributo</a></tt><tt class="py-op">,</tt><tt id="link-62" class="py-name"><a title="aps.models.atributo
aps.models.itematributovalor.ItemAtributoValor.atributo
aps.models.tipoitematributo.TipoitemAtributo.atributo" class="py-name" href="#" onclick="return doclink('link-62', 'atributo', 'link-55');">atributo</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-63', 'version', 'link-53');">version</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt id="link-64" class="py-name"><a title="aps.models.atributo
aps.models.itematributovalor.ItemAtributoValor.atributo
aps.models.tipoitematributo.TipoitemAtributo.atributo" class="py-name" href="#" onclick="return doclink('link-64', 'atributo', 'link-55');">atributo</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Variable aps.models.itematributovalor.ItemAtributoValor.valor=aps.models.itematributovalor.ItemAtributoValor-class.html#valor"><a title="aps.models.itematributovalor.ItemAtributoValor.valor" class="py-name" href="#" onclick="return doclink('link-65', 'valor', 'link-65');">valor</a></tt><tt class="py-op">)</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt id="link-66" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-66', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">add</tt><tt class="py-op">(</tt><tt class="py-name">tmp</tt><tt class="py-op">)</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">     </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-comment"># Copiamos las relaciones del item a una nueva version</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-name">relaciones</tt> <tt class="py-op">=</tt> <tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method aps.models.item.Item.get_relaciones()=aps.models.item.Item-class.html#get_relaciones"><a title="aps.models.item.Item.get_relaciones" class="py-name" href="#" onclick="return doclink('link-67', 'get_relaciones', 'link-67');">get_relaciones</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-68" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-68', 'relacion', 'link-12');">relacion</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">relaciones</tt><tt class="py-op">:</tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-name">tmp2</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name" targets="Class aps.models.relacion.Relacion=aps.models.relacion.Relacion-class.html"><a title="aps.models.relacion.Relacion" class="py-name" href="#" onclick="return doclink('link-69', 'Relacion', 'link-69');">Relacion</a></tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-70', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-71', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt id="link-72" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-72', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-73', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt id="link-74" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-74', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Variable aps.models.relacion.Relacion.vorigen=aps.models.relacion.Relacion-class.html#vorigen"><a title="aps.models.relacion.Relacion.vorigen" class="py-name" href="#" onclick="return doclink('link-75', 'vorigen', 'link-75');">vorigen</a></tt><tt class="py-op">,</tt><tt id="link-76" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-76', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Variable aps.models.relacion.Relacion.vdestino=aps.models.relacion.Relacion-class.html#vdestino"><a title="aps.models.relacion.Relacion.vdestino" class="py-name" href="#" onclick="return doclink('link-77', 'vdestino', 'link-77');">vdestino</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt id="link-78" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-78', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-79', 'tipo', 'link-29');">tipo</a></tt><tt class="py-op">,</tt><tt id="link-80" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-80', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Variable aps.models.fase.Fase.estado=aps.models.fase.Fase-class.html#estado,Variable aps.models.item.Item.estado=aps.models.item.Item-class.html#estado,Variable aps.models.itemversion.ItemVersion.estado=aps.models.itemversion.ItemVersion-class.html#estado,Variable aps.models.lineabase.Lineabase.estado=aps.models.lineabase.Lineabase-class.html#estado,Variable aps.models.proyecto.Proyecto.estado=aps.models.proyecto.Proyecto-class.html#estado,Variable aps.models.relacion.Relacion.estado=aps.models.relacion.Relacion-class.html#estado,Variable aps.models.solicitud.Solicitud.estado=aps.models.solicitud.Solicitud-class.html#estado"><a title="aps.models.fase.Fase.estado
aps.models.item.Item.estado
aps.models.itemversion.ItemVersion.estado
aps.models.lineabase.Lineabase.estado
aps.models.proyecto.Proyecto.estado
aps.models.relacion.Relacion.estado
aps.models.solicitud.Solicitud.estado" class="py-name" href="#" onclick="return doclink('link-81', 'estado', 'link-81');">estado</a></tt><tt class="py-op">)</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt id="link-82" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-82', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">add</tt><tt class="py-op">(</tt><tt class="py-name">tmp2</tt><tt class="py-op">)</tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">     </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-comment"># Creamos la relacion en cuestion y la agregamos a la BD</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-name">model</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="aps.models.relacion.Relacion" class="py-name" href="#" onclick="return doclink('link-83', 'Relacion', 'link-69');">Relacion</a></tt><tt class="py-op">(</tt><tt id="link-84" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-84', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt id="link-85" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-85', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt class="py-name">item_origen</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-86', 'version', 'link-53');">version</a></tt><tt class="py-op">,</tt><tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-87', 'version', 'link-53');">version</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt id="link-88" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-88', 'tipo', 'link-29');">tipo</a></tt><tt class="py-op">,</tt><tt class="py-string">'VALIDO'</tt><tt class="py-op">)</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt id="link-89" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-89', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">add</tt><tt class="py-op">(</tt><tt class="py-name">model</tt><tt class="py-op">)</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">     </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-comment"># Actualizamos la version del item</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-90', 'version', 'link-53');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-name">item_destino</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-91', 'version', 'link-53');">version</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt id="link-92" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-92', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">merge</tt><tt class="py-op">(</tt><tt class="py-name">item_destino</tt><tt class="py-op">)</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">     </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-comment"># Creamos una entrada en el historial</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-93" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-93', 'tipo', 'link-29');">tipo</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'PH'</tt><tt class="py-op">:</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt id="link-94" class="py-name" targets="Function aps.views.historial'.log_it()=aps.views.historial%27-module.html#log_it"><a title="aps.views.historial'.log_it" class="py-name" href="#" onclick="return doclink('link-94', 'log_it', 'link-94');">log_it</a></tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-95', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt id="link-96" class="py-name"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-96', 'session', 'link-1');">session</a></tt><tt class="py-op">[</tt><tt class="py-string">'usuario'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-string">'el item ha establecido que el item cuyo id es '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-97', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">', es su &lt;b&gt;PADRE&lt;/b&gt;.'</tt><tt class="py-op">)</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt id="link-98" class="py-name"><a title="aps.views.historial'.log_it" class="py-name" href="#" onclick="return doclink('link-98', 'log_it', 'link-94');">log_it</a></tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-99', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt id="link-100" class="py-name"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-100', 'session', 'link-1');">session</a></tt><tt class="py-op">[</tt><tt class="py-string">'usuario'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-string">'se ha establecido que el item cuyo id es '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-101', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">', es su &lt;b&gt;HIJO&lt;/b&gt;.'</tt><tt class="py-op">)</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt id="link-102" class="py-name"><a title="aps.views.historial'.log_it" class="py-name" href="#" onclick="return doclink('link-102', 'log_it', 'link-94');">log_it</a></tt><tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-103', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt id="link-104" class="py-name"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-104', 'session', 'link-1');">session</a></tt><tt class="py-op">[</tt><tt class="py-string">'usuario'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-string">'el item ha establecido que el item cuyo id es '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-105', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">', es su &lt;b&gt;ANTECESOR&lt;/b&gt;.'</tt><tt class="py-op">)</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt id="link-106" class="py-name"><a title="aps.views.historial'.log_it" class="py-name" href="#" onclick="return doclink('link-106', 'log_it', 'link-94');">log_it</a></tt><tt class="py-op">(</tt><tt id="link-107" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-107', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt id="link-108" class="py-name"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-108', 'session', 'link-1');">session</a></tt><tt class="py-op">[</tt><tt class="py-string">'usuario'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-string">'se ha establecido que el item cuyo id es '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-109" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-109', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">', es su &lt;b&gt;SUCESOR&lt;/b&gt;.'</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">     </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">jsonify</tt> <tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'success'</tt><tt class="py-op">:</tt><tt class="py-name">True</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
<a name="eliminar_relacion"></a><div id="eliminar_relacion-def"><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">app</tt><tt class="py-op">.</tt><tt class="py-name">route</tt><tt class="py-op">(</tt><tt class="py-string">'/eliminar_relacion'</tt><tt class="py-op">,</tt> <tt class="py-name">methods</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>   </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="eliminar_relacion-toggle" onclick="return toggle('eliminar_relacion');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="aps.views.relacion'-module.html#eliminar_relacion">eliminar_relacion</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="eliminar_relacion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="eliminar_relacion-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">    Permite eliminar relaciones entre dos items.</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">    @param request: objeto que encapsula la peticion del cliente</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring">    @return: True si la accion se realizo correctamente</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">    <tt id="link-110" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-110', 'idorigen', 'link-25');">idorigen</a></tt>  <tt class="py-op">=</tt> <tt id="link-111" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-111', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'origen'</tt><tt class="py-op">]</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">    <tt id="link-112" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-112', 'iddestino', 'link-27');">iddestino</a></tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-113', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'destino'</tt><tt class="py-op">]</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">    <tt id="link-114" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-114', 'tipo', 'link-29');">tipo</a></tt>      <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-115', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'tipo'</tt><tt class="py-op">]</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">    <tt class="py-name">origen</tt>  <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-116', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-117" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-117', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-118', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-119" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-119', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-name">destino</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-120', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-121" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-121', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-122', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-123" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-123', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">     </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">    <tt class="py-comment"># Eliminamos la relacion de la BD</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt id="link-124" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-124', 'relacion', 'link-12');">relacion</a></tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-125', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-126" class="py-name"><a title="aps.models.relacion.Relacion" class="py-name" href="#" onclick="return doclink('link-126', 'Relacion', 'link-69');">Relacion</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-127" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-127', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">=</tt><tt class="py-name">origen</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-128', 'id', 'link-33');">id</a></tt><tt class="py-op">,</tt><tt id="link-129" class="py-name"><a title="aps.models.relacion.Relacion.vorigen" class="py-name" href="#" onclick="return doclink('link-129', 'vorigen', 'link-75');">vorigen</a></tt><tt class="py-op">=</tt><tt class="py-name">origen</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-130', 'version', 'link-53');">version</a></tt><tt class="py-op">,</tt><tt id="link-131" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-131', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">=</tt><tt class="py-name">destino</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-132', 'id', 'link-33');">id</a></tt><tt class="py-op">,</tt><tt id="link-133" class="py-name"><a title="aps.models.relacion.Relacion.vdestino" class="py-name" href="#" onclick="return doclink('link-133', 'vdestino', 'link-77');">vdestino</a></tt><tt class="py-op">=</tt><tt class="py-name">destino</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-134', 'version', 'link-53');">version</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt id="link-135" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-135', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">delete</tt><tt class="py-op">(</tt><tt id="link-136" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-136', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">)</tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">     </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-comment"># Creamos una entrada en el historial</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt id="link-137" class="py-name"><a title="aps.views.historial'.log_it" class="py-name" href="#" onclick="return doclink('link-137', 'log_it', 'link-94');">log_it</a></tt><tt class="py-op">(</tt><tt id="link-138" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-138', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt id="link-139" class="py-name"><a title="aps.session
aps.views.atributo'.session
aps.views.item'.session
aps.views.lineabase'.session
aps.views.login'.session
aps.views.proyecto'.session
aps.views.relacion'.session
aps.views.session" class="py-name" href="#" onclick="return doclink('link-139', 'session', 'link-1');">session</a></tt><tt class="py-op">[</tt><tt class="py-string">'usuario'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-string">'el item ha eliminado su relacion '</tt> <tt class="py-op">+</tt> <tt id="link-140" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-140', 'tipo', 'link-29');">tipo</a></tt> <tt class="py-op">+</tt> <tt class="py-string">' con el item cuyo id es '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-141" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-141', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">jsonify</tt> <tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'success'</tt><tt class="py-op">:</tt><tt class="py-name">True</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
<a name="consulta_relacion_x_item"></a><div id="consulta_relacion_x_item-def"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">app</tt><tt class="py-op">.</tt><tt class="py-name">route</tt><tt class="py-op">(</tt><tt class="py-string">'/consulta_relacion_x_item'</tt><tt class="py-op">,</tt> <tt class="py-name">methods</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>   </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="consulta_relacion_x_item-toggle" onclick="return toggle('consulta_relacion_x_item');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="aps.views.relacion'-module.html#consulta_relacion_x_item">consulta_relacion_x_item</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="consulta_relacion_x_item-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="consulta_relacion_x_item-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">    Permite obtener las relaciones de un item con otros.</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">    @param request: objeto que encapsula la peticion del cliente</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">    @return: True si la accion se realizo correctamente</tt> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-name">id_item</tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-142', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-string">'iditem'</tt><tt class="py-op">]</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-comment"># Obtenemos el item del cual queremos eliminar relaciones</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt id="link-143" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-143', 'item', 'link-6');">item</a></tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-144', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-145" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-145', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-146" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-146', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt class="py-name">id_item</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-comment"># Obtenemos las relaciones y creamos un solo conjunto de relaciones</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-name">relaciones</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt id="link-147" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-147', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method aps.models.item.Item.get_antecesores()=aps.models.item.Item-class.html#get_antecesores"><a title="aps.models.item.Item.get_antecesores" class="py-name" href="#" onclick="return doclink('link-148', 'get_antecesores', 'link-148');">get_antecesores</a></tt><tt class="py-op">(</tt><tt class="py-string">'ALL'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-string">'validas'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-name">relaciones</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt id="link-149" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-149', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-150" class="py-name" targets="Method aps.models.item.Item.get_sucesores()=aps.models.item.Item-class.html#get_sucesores"><a title="aps.models.item.Item.get_sucesores" class="py-name" href="#" onclick="return doclink('link-150', 'get_sucesores', 'link-150');">get_sucesores</a></tt><tt class="py-op">(</tt><tt class="py-string">'ALL'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-string">'validas'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">relaciones</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-comment"># Procesamos los datos a enviar</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt id="link-151" class="py-name" targets="Variable aps.models.uploadedfile.UploadedFile.data=aps.models.uploadedfile.UploadedFile-class.html#data"><a title="aps.models.uploadedfile.UploadedFile.data" class="py-name" href="#" onclick="return doclink('link-151', 'data', 'link-151');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">     </tt>
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-152" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-152', 'relacion', 'link-12');">relacion</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">relaciones</tt><tt class="py-op">:</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt id="link-153" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-153', 'item', 'link-6');">item</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt id="link-154" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-154', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'idorigen'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-155" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-155', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-156', 'idorigen', 'link-25');">idorigen</a></tt> </tt>
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt id="link-157" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-157', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'nombreorigen'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-158" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-158', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-159" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-159', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-160" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-160', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-161" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-161', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-162', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Variable aps.models.atributo.Atributo.nombre=aps.models.atributo.Atributo-class.html#nombre,Variable aps.models.fase.Fase.nombre=aps.models.fase.Fase-class.html#nombre,Variable aps.models.item.Item.nombre=aps.models.item.Item-class.html#nombre,Variable aps.models.itemversion.ItemVersion.nombre=aps.models.itemversion.ItemVersion-class.html#nombre,Variable aps.models.lineabase.Lineabase.nombre=aps.models.lineabase.Lineabase-class.html#nombre,Variable aps.models.permiso.Permiso.nombre=aps.models.permiso.Permiso-class.html#nombre,Variable aps.models.proyecto.Proyecto.nombre=aps.models.proyecto.Proyecto-class.html#nombre,Variable aps.models.rol.Rol.nombre=aps.models.rol.Rol-class.html#nombre,Variable aps.models.tipoitem.Tipoitem.nombre=aps.models.tipoitem.Tipoitem-class.html#nombre"><a title="aps.models.atributo.Atributo.nombre
aps.models.fase.Fase.nombre
aps.models.item.Item.nombre
aps.models.itemversion.ItemVersion.nombre
aps.models.lineabase.Lineabase.nombre
aps.models.permiso.Permiso.nombre
aps.models.proyecto.Proyecto.nombre
aps.models.rol.Rol.nombre
aps.models.tipoitem.Tipoitem.nombre" class="py-name" href="#" onclick="return doclink('link-163', 'nombre', 'link-163');">nombre</a></tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt id="link-164" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-164', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'versionorigen'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-165', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="aps.models.relacion.Relacion.vorigen" class="py-name" href="#" onclick="return doclink('link-166', 'vorigen', 'link-75');">vorigen</a></tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt id="link-167" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-167', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'iddestino'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-168" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-168', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-169', 'iddestino', 'link-27');">iddestino</a></tt> </tt>
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt id="link-170" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-170', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'nombredestino'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-171" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-171', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-172', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-173', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt id="link-174" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-174', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-175', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="aps.models.atributo.Atributo.nombre
aps.models.fase.Fase.nombre
aps.models.item.Item.nombre
aps.models.itemversion.ItemVersion.nombre
aps.models.lineabase.Lineabase.nombre
aps.models.permiso.Permiso.nombre
aps.models.proyecto.Proyecto.nombre
aps.models.rol.Rol.nombre
aps.models.tipoitem.Tipoitem.nombre" class="py-name" href="#" onclick="return doclink('link-176', 'nombre', 'link-163');">nombre</a></tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt id="link-177" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-177', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'versiondestino'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-178" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-178', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="aps.models.relacion.Relacion.vdestino" class="py-name" href="#" onclick="return doclink('link-179', 'vdestino', 'link-77');">vdestino</a></tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-180" class="py-name"><a title="aps.models.relacion" class="py-name" href="#" onclick="return doclink('link-180', 'relacion', 'link-12');">relacion</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-181', 'tipo', 'link-29');">tipo</a></tt> <tt class="py-op">==</tt> <tt class="py-string">u'PH'</tt><tt class="py-op">:</tt> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt id="link-182" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-182', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'tipo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'PADRE-HIJO'</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt id="link-183" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-183', 'item', 'link-6');">item</a></tt><tt class="py-op">[</tt><tt class="py-string">'tipo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'ANTECESOR-SUCESOR'</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt id="link-184" class="py-name"><a title="aps.models.uploadedfile.UploadedFile.data" class="py-name" href="#" onclick="return doclink('link-184', 'data', 'link-151');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-185" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-185', 'item', 'link-6');">item</a></tt><tt class="py-op">)</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">jsonify</tt> <tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'success'</tt><tt class="py-op">:</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">'data'</tt><tt class="py-op">:</tt><tt id="link-186" class="py-name"><a title="aps.models.uploadedfile.UploadedFile.data" class="py-name" href="#" onclick="return doclink('link-186', 'data', 'link-151');">data</a></tt><tt class="py-op">,</tt> <tt class="py-string">'total'</tt><tt class="py-op">:</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-187" class="py-name"><a title="aps.models.uploadedfile.UploadedFile.data" class="py-name" href="#" onclick="return doclink('link-187', 'data', 'link-151');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
<a name="resolver_relaciones"></a><div id="resolver_relaciones-def"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">app</tt><tt class="py-op">.</tt><tt class="py-name">route</tt><tt class="py-op">(</tt><tt class="py-string">'/resolver_relaciones'</tt><tt class="py-op">,</tt> <tt class="py-name">methods</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>   </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="resolver_relaciones-toggle" onclick="return toggle('resolver_relaciones');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="aps.views.relacion'-module.html#resolver_relaciones">resolver_relaciones</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="resolver_relaciones-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="resolver_relaciones-expanded"><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">    Permite resolver las relaciones de un item cuando este es revertido.</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">    @param request: objeto que encapsula la peticion del cliente</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    @return: True si la accion se realizo correctamente</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-name">id_item</tt> <tt class="py-op">=</tt> <tt id="link-188" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-188', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'iditem'</tt><tt class="py-op">]</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt id="link-189" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-189', 'version', 'link-53');">version</a></tt> <tt class="py-op">=</tt> <tt id="link-190" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-190', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'version'</tt><tt class="py-op">]</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-name">opcion</tt>  <tt class="py-op">=</tt> <tt id="link-191" class="py-name"><a title="aps.request
aps.views.atributo'.request
aps.views.historial'.request
aps.views.item'.request
aps.views.lineabase'.request
aps.views.login'.request
aps.views.permiso'.request
aps.views.proyecto'.request
aps.views.relacion'.request
aps.views.request
aps.views.rol'.request
aps.views.usuario'.request" class="py-name" href="#" onclick="return doclink('link-191', 'request', 'link-0');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">form</tt><tt class="py-op">[</tt><tt class="py-string">'opcion'</tt><tt class="py-op">]</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">     </tt>
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-comment"># Obtenemos el item desde la BD</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt id="link-192" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-192', 'item', 'link-6');">item</a></tt>   <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-193', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-194" class="py-name"><a title="aps.models.item.Item" class="py-name" href="#" onclick="return doclink('link-194', 'Item', 'link-32');">Item</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-195" class="py-name"><a title="aps.models.atributo.Atributo.id
aps.models.fase.Fase.id
aps.models.item.Item.id
aps.models.itemversion.ItemVersion.id
aps.models.lineabase.Lineabase.id
aps.models.permiso.Permiso.id
aps.models.proyecto.Proyecto.id
aps.models.rol.Rol.id
aps.models.solicitud.Solicitud.id
aps.models.tipoitem.Tipoitem.id
aps.models.usuario.Usuario.id" class="py-name" href="#" onclick="return doclink('link-195', 'id', 'link-33');">id</a></tt><tt class="py-op">=</tt><tt class="py-name">id_item</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">    <tt class="py-comment"># Obtenemos las relaciones actuales</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">    <tt class="py-name">rels_a</tt> <tt class="py-op">=</tt> <tt id="link-196" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-196', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="aps.models.item.Item.get_relaciones" class="py-name" href="#" onclick="return doclink('link-197', 'get_relaciones', 'link-67');">get_relaciones</a></tt><tt class="py-op">(</tt><tt id="link-198" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-198', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-199', 'version', 'link-53');">version</a></tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">    <tt class="py-comment"># Obtenemos las relaciones en la version en la cual se revirtio</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">    <tt class="py-name">rels_b</tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-200', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="aps.models.item.Item.get_relaciones" class="py-name" href="#" onclick="return doclink('link-201', 'get_relaciones', 'link-67');">get_relaciones</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-202" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-202', 'version', 'link-53');">version</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">     </tt>
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt class="py-comment"># Proceso de resolucion</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-name">opcion</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">opcion</tt><tt class="py-op">)</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-name">rels</tt>   <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">opcion</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-comment"># Mantemos las relaciones actuales</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">rels</tt> <tt class="py-op">=</tt> <tt class="py-name">rels_a</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">opcion</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-comment"># Utilizar las relaciones anteriores</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">rels</tt> <tt class="py-op">=</tt> <tt class="py-name">rels_b</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">opcion</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-comment"># Mezclar las relaciones</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">is_in</tt><tt class="py-op">(</tt><tt class="py-param">L</tt><tt class="py-op">,</tt><tt class="py-param">e</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">L</tt><tt class="py-op">:</tt> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-203', 'iddestino', 'link-27');">iddestino</a></tt> <tt class="py-op">==</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-204', 'iddestino', 'link-27');">iddestino</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-205', 'idorigen', 'link-25');">idorigen</a></tt> <tt class="py-op">==</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-206', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">:</tt> </tt>
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
</div><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">         </tt>
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-name">rels</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-name">tmp</tt>  <tt class="py-op">=</tt> <tt class="py-name">rels_a</tt> <tt class="py-op">+</tt> <tt class="py-name">rels_b</tt> </tt>
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tmp</tt><tt class="py-op">:</tt> </tt>
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">is_in</tt><tt class="py-op">(</tt><tt class="py-name">rels</tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                <tt class="py-name">rels</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-comment"># Eliminar todas las relaciones</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-name">rels</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">     </tt>
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">    <tt class="py-comment"># Construimos un grafo del proyecto para detectar ciclos</tt> </tt>
<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-name">id_proyecto</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-207', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="aps.models.proyectofase.ProyectoFase" class="py-name" href="#" onclick="return doclink('link-208', 'ProyectoFase', 'link-40');">ProyectoFase</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">filter_by</tt><tt class="py-op">(</tt><tt id="link-209" class="py-name"><a title="aps.models.faserol.FaseRol.idfase
aps.models.fasetipoitem.FaseTipoitem.idfase
aps.models.historial.Historial.idfase
aps.models.item.Item.idfase
aps.models.itemversion.ItemVersion.idfase
aps.models.lineabase.Lineabase.idfase
aps.models.proyectofase.ProyectoFase.idfase
aps.models.solicitud.Solicitud.idfase" class="py-name" href="#" onclick="return doclink('link-209', 'idfase', 'link-41');">idfase</a></tt><tt class="py-op">=</tt><tt id="link-210" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-210', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="aps.models.faserol.FaseRol.idfase
aps.models.fasetipoitem.FaseTipoitem.idfase
aps.models.historial.Historial.idfase
aps.models.item.Item.idfase
aps.models.itemversion.ItemVersion.idfase
aps.models.lineabase.Lineabase.idfase
aps.models.proyectofase.ProyectoFase.idfase
aps.models.solicitud.Solicitud.idfase" class="py-name" href="#" onclick="return doclink('link-211', 'idfase', 'link-41');">idfase</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">first</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="aps.models.grafo.Grafo.idproyecto
aps.models.historial.Historial.idproyecto
aps.models.proyectofase.ProyectoFase.idproyecto
aps.models.proyectorol.ProyectoRol.idproyecto
aps.models.proyectousuario.ProyectoUsuario.idproyecto
aps.models.proyectousuariorol.ProyectoUsuarioRol.idproyecto" class="py-name" href="#" onclick="return doclink('link-212', 'idproyecto', 'link-43');">idproyecto</a></tt> </tt>
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-213" class="py-name"><a title="aps.models.grafo.Grafo" class="py-name" href="#" onclick="return doclink('link-213', 'Grafo', 'link-44');">Grafo</a></tt><tt class="py-op">(</tt><tt class="py-name">id_proyecto</tt><tt class="py-op">)</tt> </tt>
<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">     </tt>
<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-comment"># Agregamos las relaciones a la BD</tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rels</tt><tt class="py-op">:</tt> </tt>
<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-comment"># Controlamos que la relacion no produzca ciclos</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-name">paths</tt> <tt class="py-op">=</tt> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="aps.models.grafo.Grafo.buscar_caminos" class="py-name" href="#" onclick="return doclink('link-214', 'buscar_caminos', 'link-45');">buscar_caminos</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-215', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-216', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt> </tt>
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">paths</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-comment"># No hay ciclos</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt class="py-name">model</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-217', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">id_item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                <tt class="py-name">model</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="aps.models.relacion.Relacion" class="py-name" href="#" onclick="return doclink('link-218', 'Relacion', 'link-69');">Relacion</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-219', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-220', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="aps.models.relacion.Relacion.vorigen" class="py-name" href="#" onclick="return doclink('link-221', 'vorigen', 'link-75');">vorigen</a></tt><tt class="py-op">,</tt><tt id="link-222" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-222', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-223', 'version', 'link-53');">version</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-224', 'tipo', 'link-29');">tipo</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="aps.models.fase.Fase.estado
aps.models.item.Item.estado
aps.models.itemversion.ItemVersion.estado
aps.models.lineabase.Lineabase.estado
aps.models.proyecto.Proyecto.estado
aps.models.relacion.Relacion.estado
aps.models.solicitud.Solicitud.estado" class="py-name" href="#" onclick="return doclink('link-225', 'estado', 'link-81');">estado</a></tt><tt class="py-op">)</tt> </tt>
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                <tt class="py-name">model</tt> <tt class="py-op">=</tt> <tt id="link-226" class="py-name"><a title="aps.models.relacion.Relacion" class="py-name" href="#" onclick="return doclink('link-226', 'Relacion', 'link-69');">Relacion</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-227', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-228', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">,</tt><tt id="link-229" class="py-name"><a title="aps.models.historial.Historial.item
aps.models.item
aps.models.solicituditem.SolicitudItem.item" class="py-name" href="#" onclick="return doclink('link-229', 'item', 'link-6');">item</a></tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="aps.models.item.Item.version
aps.models.itematributovalor.ItemAtributoValor.version
aps.models.itemversion.ItemVersion.version
aps.models.uploadedfile.UploadedFile.version" class="py-name" href="#" onclick="return doclink('link-230', 'version', 'link-53');">version</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="aps.models.relacion.Relacion.vdestino" class="py-name" href="#" onclick="return doclink('link-231', 'vdestino', 'link-77');">vdestino</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="aps.models.relacion.Relacion.tipo" class="py-name" href="#" onclick="return doclink('link-232', 'tipo', 'link-29');">tipo</a></tt><tt class="py-op">,</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="aps.models.fase.Fase.estado
aps.models.item.Item.estado
aps.models.itemversion.ItemVersion.estado
aps.models.lineabase.Lineabase.estado
aps.models.proyecto.Proyecto.estado
aps.models.relacion.Relacion.estado
aps.models.solicitud.Solicitud.estado" class="py-name" href="#" onclick="return doclink('link-233', 'estado', 'link-81');">estado</a></tt><tt class="py-op">)</tt>             </tt>
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">            <tt class="py-comment"># La relacion se agrega a la BD</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">            <tt id="link-234" class="py-name"><a title="aps.bdsession
aps.models.atributo.bdsession
aps.models.base.bdsession
aps.models.bdsession
aps.models.fase.bdsession
aps.models.faserol.bdsession
aps.models.fasetipoitem.bdsession
aps.models.grafo.bdsession
aps.models.historial.bdsession
aps.models.item.bdsession
aps.models.itematributovalor.bdsession
aps.models.itemversion.bdsession
aps.models.lineabase.bdsession
aps.models.permiso.bdsession
aps.models.proyecto.bdsession
aps.models.proyectofase.bdsession
aps.models.proyectorol.bdsession
aps.models.proyectousuario.bdsession
aps.models.proyectousuariorol.bdsession
aps.models.relacion.bdsession
aps.models.rol.bdsession
aps.models.rolpermiso.bdsession
aps.models.solicitud.bdsession
aps.models.solicituditem.bdsession
aps.models.tipoitem.bdsession
aps.models.tipoitematributo.bdsession
aps.models.uploadedfile.bdsession
aps.models.usuario.bdsession
aps.models.voto.bdsession
aps.views.atributo'.bdsession
aps.views.bdsession
aps.views.fase.bdsession
aps.views.historial'.bdsession
aps.views.item'.bdsession
aps.views.lineabase'.bdsession
aps.views.login'.bdsession
aps.views.main.bdsession
aps.views.permiso'.bdsession
aps.views.proyecto'.bdsession
aps.views.relacion'.bdsession
aps.views.rol'.bdsession
aps.views.solicitudcambio.bdsession
aps.views.tipoitem.bdsession
aps.views.usuario'.bdsession" class="py-name" href="#" onclick="return doclink('link-234', 'bdsession', 'link-31');">bdsession</a></tt><tt class="py-op">.</tt><tt class="py-name">add</tt><tt class="py-op">(</tt><tt class="py-name">model</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">            <tt class="py-comment"># Actualizamos el grafo</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">            <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Variable aps.models.grafo.Grafo.nodos=aps.models.grafo.Grafo-class.html#nodos"><a title="aps.models.grafo.Grafo.nodos" class="py-name" href="#" onclick="return doclink('link-235', 'nodos', 'link-235');">nodos</a></tt><tt class="py-op">[</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-236', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'p'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-237', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">)</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">            <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="aps.models.grafo.Grafo.nodos" class="py-name" href="#" onclick="return doclink('link-238', 'nodos', 'link-235');">nodos</a></tt><tt class="py-op">[</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="aps.models.relacion.Relacion.idorigen" class="py-name" href="#" onclick="return doclink('link-239', 'idorigen', 'link-25');">idorigen</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="aps.models.relacion.Relacion.iddestino" class="py-name" href="#" onclick="return doclink('link-240', 'iddestino', 'link-27');">iddestino</a></tt><tt class="py-op">)</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">     </tt>
<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">jsonify</tt> <tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'success'</tt><tt class="py-op">:</tt><tt class="py-name">True</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="aps-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Sat Jun  8 08:44:03 2013
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
